Critical operational processes of businesses, governments, and institutions often rely on software applications that execute on distributed systems that communicate over networks (such as, Wide Area Networks (WANs) or Internet links). Proper performance of these applications is critical to continued operation of an enterprise's business processes and the productivity of employees. Disruptions to the network applications and business processes can be very costly, leading to lost employee productivity, lost revenue opportunities, and/or increased costs.
End-to-end performance—that is, the performance or response time measured between two hosts implementing a network application over a network—most closely represents the performance of a business process. Ideally, the performance of the network communication path between the two ends of a network application should be seamless. Accordingly, a variety of technologies have been deployed to manage and track the performance of computer networks and networked applications. Some network performance monitoring solutions rely on passive techniques (e.g., recording packet traces and arrival times), while others rely on active methods that inject synthetic traffic into the network. For example, SLA managers track the performance of the Wide Area Network connection provided by a network service provider. However, these solutions only track a segment of the communications path between end systems and therefore only yield information relating to part of the potential performance issues. In addition, desktop application agents, deployed on individual computers, either generate artificial traffic meant to simulate actual operation of applications, or monitor actual traffic generated by a given network application to track response times. While desktop application agents can track end-to-end performance, they possess certain drawbacks. For instance, desktop application agents involve large deployment overhead as they must be individually installed on each desktop. In addition, the desktop application agents are typically limited to monitoring the end-to-end performance of only one network application, and may not provide additional information relating to the cause of any degradation in performance.
Other network application performance monitoring solutions exist. For example, co-pending and commonly owned U.S. patent application Ser. Nos. 09/710,442 and 10/812,198 disclose technologies that calculate the time traffic spends traveling between a client and a server and the time used by the server itself based on passive monitoring of packet arrival times at a network device deployed on a WAN link. Moreover, some network monitoring devices, such as the PacketShaper® network application traffic management device offered by Packeteer, Inc. of Cupertino, Calif., include synthetic transaction agents that inject synthetic traffic into the network to monitor network performance. Synthetic transaction agents are often deployed on carrier network equipment to track point-to-point service level agreements corresponding to a WAN circuit. Synthetic transactions, however, increase network load, often in communications paths or links that already are at full capacity. In addition, beyond increasing network load, the synthetic traffic does not represent actual network traffic corresponding to the actual network applications and processes of direct interest to enterprises. Still further, synthetic transactions are initiated by an intermediate network device in the communications path between end systems, and therefore do not track end-to-end performance. While useful for second level diagnostics and for tracking carrier performance to service level agreements, the use of synthetic transactions does not satisfy the primary interest of the business, to monitor and maintain productivity of end-to-end business processes.
While the network application performance monitoring technologies achieve their respective objectives, a need in the art exists for network performance monitoring technologies that adapt to current network conditions. A need in the art also exists for network monitoring systems that can be configured that efficiently use network resources or reduce network load. Embodiments of the present invention substantially fulfill these needs.